package br.com.lacibMusic.bean;

import br.com.lacibMusic.entidades.Artista;
import br.com.lacibMusic.rn.ArtistaRN;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped
public class ArtistaBean implements Serializable {

    private ArtistaRN artistaRN = new ArtistaRN();
    private Artista artista = new Artista();
    private List<Artista> artistas;
    private String renderLista;

    public String getTitulo() {
        iniciarBean();

        return "Cadastro - Artista";
    }

    public void iniciarBean() {
        artistas = artistaRN.obterTodos();
        renderLista = "0";
    }

    public ArtistaBean() {
    }

    public Artista getArtista() {
        return artista;
    }

    public void setArtista(Artista artista) {
        this.artista = artista;
    }

    public ArtistaRN getArtistaRN() {
        return artistaRN;
    }

    public void setArtistaRN(ArtistaRN artistaRN) {
        this.artistaRN = artistaRN;
    }

    public List<Artista> getArtistas() {
        if (artistas == null) {
            artistas = artistaRN.obterTodos();
        }
        return artistas;
    }

    public void setArtistas(List<Artista> artistas) {
        this.artistas = artistas;
    }

    public void irExcluir() {
        renderLista = "2";
    }

    public void cancelar() {
        artista = null;
        renderLista = "0";
    }

    public void salvar() {
        if (!artistaRN.obterPorNome(artista.getNomeArtista()).isEmpty()) {
            BeanUtil.criarMensagemDeErro("Erro ao salvar", "Verifique se já não existe artista cadastrado com este nome.");
        } else {
            if (artistaRN.salvar(artista)) {
                BeanUtil.criarMensagemDeInformacao("Operação Realizada com Sucesso", "Artista Salvo na Lista");
            } else {
                BeanUtil.criarMensagemDeErro("Erro ao salvar", "O Artista não pode ser salvo.");
            }
        }
        artista = null;
    }

    public void voltar() {
        artista = null;
        renderLista = "0";
    }

    public void novo() {
        if (artista == null) {
            artista = artistaRN.novo();
        }
        renderLista = "1";
    }

    public void excluir() {
        if (artistaRN.remover(artista)) {
            BeanUtil.criarMensagemDeInformacao("Artista Removido com sucesso.", "Artista: " + artista.getNomeArtista());
        } else {
            BeanUtil.criarMensagemDeErro("Erro ao remover Artista.", "O Artista não pode ser removido.");
        }
        artistas = null;
        artista = null;
        renderLista = "0";
    }

    public String getRenderLista() {
        return renderLista;
    }

    public void setRenderLista(String renderLista) {
        this.renderLista = renderLista;
    }
}
